#include "tlv.h"
#include <string.h>
#include <iostream>
using std::cout;
using std::endl;

namespace rocket 
{

tlv::tlv()
:_type(0)
,_length(0)
,_data("\0")
{

}


tlv::tlv(int type,int length,const char *data)
:_type(type)
,_length(length)
{
    memset(_data, 0, sizeof(_data));
    strncpy(_data, data, length);
}



tlv::~tlv()
{

}
//设置数据标识位
void tlv::set_type(int type)
{
    _type=type;
}
//设置数据字符串的长度
void tlv::set_length(int length)
{
    _length=length;
}
//设置数据字符串
void tlv::set_data(char *data)
{
    strncpy(_data, data, _length);
}
//获取数据标识位
int tlv::get_type()
{
    return _type;
}
//获取数据字符串的长度
int tlv::get_length()
{
    return _length;
}
//获取数据字符串的首地址
char *tlv::get_data()
{
    return _data;
}
//获取该对象的首地址
char *tlv::get_tlv_head()
{
    return (char *)&_type;
}
//将字符串解码为int
int char2int(char *head)
{
    return *(int *)head;
}

//打印tlv内容
void tlv::print()
{
    cout<<"type="<<_type<<" : length="<<_length<<" : data="<<_data<<endl;
}

}
